package isometric
{
	import starling.display.Sprite;
	import starling.filters.FragmentFilter;
	
	public class IsoWorld extends Sprite
	{
		public var _floor:Sprite; 
		private var _objects:Array; 
		private var _world:Sprite; 
		
		public function IsoWorld() { 
			_floor = new Sprite(); addChild(_floor); 
			_world = new Sprite(); addChild(_world);
			 _objects = new Array(); 
		} 
		
		public function addChildToWorld(child:IsoObject):void { 
			_world.addChild(child); _objects.push(child); sort(); 
		} 
		
		public function addChildToFloor(child:IsoObject):void{ 
			_floor.addChild(child);
		} 
		
		public function sort():void { 
			_objects.sortOn("depth", Array.NUMERIC);
			 for(var i:int = 0; i < _objects.length; i++) { 
				_world.setChildIndex(_objects[i], i); 
			} 
		} 
		
		public function updateFloorByIndex(index:int):void{
			var length:int = this._floor.numChildren;
			for(var i:int = 0; i < length;i++){
				var child:IsoObject = this._floor.getChildAt(i) as IsoObject;
				if(child.index == index){
					child.alpha = 0.5;
				}
			}
		}
	}
}